#include <stdio.h>
#include <time.h>

double getAverage(const int *arr, const int size)
{
  int    i, sum = 0;      
  double avg;          
  for (i = 0; i < size; ++i) {
    sum += arr[i];
  }
  avg = (double)sum / size;
  return avg;
}
int main ()
{
   /* 带有 5 个元素的整型数组  */
   int balance[5] = {1000, 2, 3, 17, 50};
   double avg;
   /* 传递一个指向数组的指针作为参数 */
   avg = getAverage( balance, 5 ) ;
   /* 输出返回值  */
   printf("Average value is: %f\n", avg );
   return 0;
}



// void getSeconds(unsigned long *par)
// {
//    /* 获取当前的秒数 */
//    *par = time( NULL ); // 在该地址填充内容
//    return;
// }
// int main ()
// {
//    unsigned long sec;
//    getSeconds( &sec );
//    /* 输出实际值 */
//    printf("Number of seconds: %ld\n", sec );
//    return 0;
// }

// int main ()
// {
//    int  *ptr = NULL;
 
//    printf("ptr 的地址是 %d\n", ptr  ); // 输出 0
//    printf("ptr 的地址是 %p\n", ptr  ); // 输出 00000000  8个0
 
//    return 0;
// }


// int main ()
// {
//    int  var = 20;   /* 实际变量的声明 */
//    int  *ip;        /* 指针变量的声明 */
//    int *a;
 
//    ip = &var;  /* 在指针变量中存储 var 的地址 */
//    a = var; 
 
//    printf("var 变量的地址: %p\n", &var  );   // 输出var的地址
 
//    /* 在指针变量中存储的地址 */
//    printf("ip 变量存储的地址: %p\n", ip );  // 输出var的地址
 
//    /* 使用指针访问值 */
//    printf(" *ip 变量的值: %d\n", *ip );   // 输出 20，

// //    printf(" *ip 变量的值: %d\n", *a );   // 报错，*解引用操作符，首先ip是一个地址，才能解引用，否则报错
 
//    return 0;
// }



// int main ()
// {
//     int var_runoob = 11;
//     int *p;              // 定义指针变量
//     p = &var_runoob;

//     int *a;
//     a = &var_runoob;
 
//    printf("var_runoob 变量的地址： %p\n", p); // 0061FF14  16进制的地址
//    printf("var_runoob 变量的地址： %d\n", p); // 6422292   10进制的地址

//    printf("var_runoob 变量的地址： %p\n", a);
//    printf("var_runoob 变量的地址： %d\n", a);
//    printf("var_runoob 变量的地址： %d\n", *a );
//    return 0;
// }
